home *** CD-ROM | disk | FTP | other *** search
- init_calculator:
- debug "initializing calculator ..."
- rect = get element "number keys"
- xpos = rect.xpos
- ypos = rect.ypos
- xlen = rect.xlen
- ylen = rect.ylen
- ulen = (xlen - 4) / 3
- vlen = (ylen - 4) / 4
- buttons = new byte[12][10]
- $buttons[0] = "1";"2";"3";"4";"5";"6";"7";"8";"9";"0";"+/-";"."
- for n = 0 to 3
- for m = 0 to 2
- btn = new element "Text Button"
- element btn position xpos+ulen*m+2, ypos+vlen*n+2 size ulen, vlen
- element btn set "text" color 250,250,250
- element btn set "face" color 100,100,140
- $btn.text = $buttons[n * 3 + m]
- $btn.font_face = "Arial"
- btn.font_weight = 700
- btn.font_height = -22
- $btn.action = "script calculator call number_button: \"", $btn.text, "\""
- display element btn
-
- rect = get element "operator keys"
- xpos = rect.xpos
- ypos = rect.ypos
- xlen = rect.xlen
- ylen = rect.ylen
- ulen = (xlen - 4) / 2
- vlen = (ylen - 4) / 4
- buttons = new byte[12][10]
- $buttons[0] = "+";"-";"╫";"≈";"C";"M";"Next";"="
- for n = 0 to 1
- for m = 0 to 3
- btn = new element "Text Button"
- element btn position xpos+n*ulen+2, ypos+vlen*m+2 size ulen, vlen
- element btn set "text" color 250,250,250
- element btn set "face" color 100,100,140
- $btn.text = $buttons[n * 4 + m]
- $btn.font_face = "Arial"
- btn.font_weight = 700
- btn.font_height = -22
- $btn.action = "script calculator call operator_button: \"", $btn.text, "\""
- display element btn
- $operator = ""
- old_num = 0
- new_flag = TRUE
-
- number_button: key
- debug $key
- $num = getedit "lcd display"
- if (key[0] >= '0' && key[0] <= '9') || key[0] == '.'
- if new_flag
- editbox "lcd display" = $key
- new_flag = FALSE
- return
- for n = 0 to strlen $num - 1
- if num[n] == 'e'
- $num = $num strcnt n, $key, $num stroff n
- editbox "lcd display" = $num
- return
- $num = $num, $key
- else if $key == "+/-" then $num = -1 * strval $num
- editbox "lcd display" = $num
-
- operator_button: key
- debug $key
- $num = getedit "lcd display"
- if $key == "C"
- old_num = 0
- $operator = ""
- editbox "lcd display" = ""
- return
-
- if $key == "Next"
- element action "next"
- return
-
- debug old_num," ",$operator," ",strval $num
- if $operator == "+" then new_num = old_num + strval $num
- else if $operator == "-" then new_num = old_num - strval $num
- else if $operator == "╫" then new_num = old_num * strval $num
- else if $operator == "≈"
- if strval $num == 0 then new_num = 0
- else
- new_num = old_num / strval $num
- else new_num = strval $num
- old_num = new_num
-
- editbox "lcd display" = new_num
- $operator = $key
- new_flag = TRUE
-
-